GroupBy(TSource, TKey, TResult) Method (ParallelQuery(TSource), Func(TSource, TKey), Func(TKey, IEnumerable(TSource), TResult))

Task Parallel System.Threading

Groups in parallel the elements of a sequence according to a specified key selector function and creates a result value from each group and its key.

Namespace:  System.Linq
Assembly:  System.Threading (in System.Threading.dll)

Syntax

Visual Basic (Declaration)
Public Shared Function GroupBy(Of TSource, TKey, TResult) ( _
	source As ParallelQuery(Of TSource), _
	keySelector As Func(Of TSource, TKey), _
	resultSelector As Func(Of TKey, IEnumerable(Of TSource), TResult) _
) As ParallelQuery(Of TResult)
C#
public static ParallelQuery<TResult> GroupBy<TSource, TKey, TResult>(
	ParallelQuery<TSource> source,
	Func<TSource, TKey> keySelector,
	Func<TKey, IEnumerable<TSource>, TResult> resultSelector
)

Parameters

source
Type: System.Linq..::.ParallelQuery<(Of <(TSource>)>)
A sequence whose elements to group.
keySelector
Type: System..::.Func<(Of <(TSource, TKey>)>)
A function to extract the key for each element.
resultSelector
Type: System..::.Func<(Of <(TKey, IEnumerable<(Of <(TSource>)>), TResult>)>)
A function to create a result value from each group.

Type Parameters

TSource
The type of the elements of source.
TKey
The type of the key returned by keySelector.
TResult
The type of the result value returned by resultSelector.

Return Value

A collection of elements of type TResult where each element represents a projection over a group and its key.

Exceptions

ExceptionCondition
System..::.ArgumentNullException source or keySelector or resultSelector is a null reference (Nothing in Visual Basic).

See Also